* Step 1: DependencyPairs WORST_CASE(?,O(1)) + Considered Problem: - Strict TRS: add(0(),X) -> X add(s(),Y) -> s() dbl(0()) -> 0() dbl(s()) -> s() first(0(),X) -> nil() first(s(),cons(Y)) -> cons(Y) sqr(0()) -> 0() sqr(s()) -> s() terms(N) -> cons(recip(sqr(N))) - Signature: {add/2,dbl/1,first/2,sqr/1,terms/1} / {0/0,cons/1,nil/0,recip/1,s/0} - Obligation: innermost runtime complexity wrt. defined symbols {add,dbl,first,sqr,terms} and constructors {0,cons,nil ,recip,s} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs add#(0(),X) -> c_1() add#(s(),Y) -> c_2() dbl#(0()) -> c_3() dbl#(s()) -> c_4() first#(0(),X) -> c_5() first#(s(),cons(Y)) -> c_6() sqr#(0()) -> c_7() sqr#(s()) -> c_8() terms#(N) -> c_9(sqr#(N)) Weak DPs and mark the set of starting terms. * Step 2: UsableRules WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: add#(0(),X) -> c_1() add#(s(),Y) -> c_2() dbl#(0()) -> c_3() dbl#(s()) -> c_4() first#(0(),X) -> c_5() first#(s(),cons(Y)) -> c_6() sqr#(0()) -> c_7() sqr#(s()) -> c_8() terms#(N) -> c_9(sqr#(N)) - Weak TRS: add(0(),X) -> X add(s(),Y) -> s() dbl(0()) -> 0() dbl(s()) -> s() first(0(),X) -> nil() first(s(),cons(Y)) -> cons(Y) sqr(0()) -> 0() sqr(s()) -> s() terms(N) -> cons(recip(sqr(N))) - Signature: {add/2,dbl/1,first/2,sqr/1,terms/1,add#/2,dbl#/1,first#/2,sqr#/1,terms#/1} / {0/0,cons/1,nil/0,recip/1,s/0 ,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/0,c_9/1} - Obligation: innermost runtime complexity wrt. defined symbols {add#,dbl#,first#,sqr#,terms#} and constructors {0,cons ,nil,recip,s} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: add#(0(),X) -> c_1() add#(s(),Y) -> c_2() dbl#(0()) -> c_3() dbl#(s()) -> c_4() first#(0(),X) -> c_5() first#(s(),cons(Y)) -> c_6() sqr#(0()) -> c_7() sqr#(s()) -> c_8() terms#(N) -> c_9(sqr#(N)) * Step 3: Trivial WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: add#(0(),X) -> c_1() add#(s(),Y) -> c_2() dbl#(0()) -> c_3() dbl#(s()) -> c_4() first#(0(),X) -> c_5() first#(s(),cons(Y)) -> c_6() sqr#(0()) -> c_7() sqr#(s()) -> c_8() terms#(N) -> c_9(sqr#(N)) - Signature: {add/2,dbl/1,first/2,sqr/1,terms/1,add#/2,dbl#/1,first#/2,sqr#/1,terms#/1} / {0/0,cons/1,nil/0,recip/1,s/0 ,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/0,c_9/1} - Obligation: innermost runtime complexity wrt. defined symbols {add#,dbl#,first#,sqr#,terms#} and constructors {0,cons ,nil,recip,s} + Applied Processor: Trivial + Details: Consider the dependency graph 1:S:add#(0(),X) -> c_1() 2:S:add#(s(),Y) -> c_2() 3:S:dbl#(0()) -> c_3() 4:S:dbl#(s()) -> c_4() 5:S:first#(0(),X) -> c_5() 6:S:first#(s(),cons(Y)) -> c_6() 7:S:sqr#(0()) -> c_7() 8:S:sqr#(s()) -> c_8() 9:S:terms#(N) -> c_9(sqr#(N)) -->_1 sqr#(s()) -> c_8():8 -->_1 sqr#(0()) -> c_7():7 The dependency graph contains no loops, we remove all dependency pairs. * Step 4: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Signature: {add/2,dbl/1,first/2,sqr/1,terms/1,add#/2,dbl#/1,first#/2,sqr#/1,terms#/1} / {0/0,cons/1,nil/0,recip/1,s/0 ,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/0,c_9/1} - Obligation: innermost runtime complexity wrt. defined symbols {add#,dbl#,first#,sqr#,terms#} and constructors {0,cons ,nil,recip,s} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(1))